#include <unistd.h>
#include <fcntl.h>

enum
{
    SOCKET_ERROR = 0,
    BIND_ERROR,
    USEGE_ERROR,
    READ_ERROR,
    LISTEN_ERROR,
    ACCEPT_ERROR,
    CONNECT_ERROR
};

// ET模式fd必须是是非阻塞
void SetNonBlock(int fd)
{
    int fl = fcntl(fd, F_GETFL);
    if (fl < 0)
        return;
    // 如果fl是正常的，把它设为非阻塞
    fcntl(fd, F_SETFL, fl | O_NONBLOCK);
}